The present embodiments relate to a management apparatus and method for managing data elements.
In order to handle complex software systems, an entity of a software system may be separated into a plurality of parts of the code base. This simplifies the development and the maintenance of a complex software system. The software system may be developed by a plurality of users. For this purpose, the individual parts of the code base of the software system are stored and managed by a central storage and management system. When a user wants to work on the code base, the required files of the code base are copied from a central storage system to a local user terminal. After the user has finished work, the modified parts of the code base are transferred back to the central storage system, and the modified parts of the code base are stored in the central storage system. This procedure is called “check-in”. In order to enable a tracking of the software development and to monitor the modifications, the received parts of the code base may be stored in addition to the previous version of the respective parts or sections of the code base. Thus, the amendments may be identified, and a previous version may be recovered if the current amendments lead to a serious error in the code base. In a conventional configuration management system (CMS), code parts are stored based on directories and/or files.
Since the code base of complex software may include a huge number of individual data elements, the user is confronted with a large number of mainly unstructured information when maintaining and evolving the software system. For example, it is difficult to analyze the impact of a change on further parts of the code base. It is hard to realize what other parts of the code base are to be considered in order to keep the system function running according to operational qualities.
Conventionally, compile and link errors indicate which additional changes are also needed on other parts of the code base when implementing a change to the code base. However, there are no hints on a possible semantic relationship between different parts of the code base that are to be considered when changing the code.
Accordingly, when modifying a part of the code base, a user is not aware which other parts of the code base are also to be considered when performing a change, or which other parts of the code base may be semantically related to the currently modified part. Further, the user has no information how the currently performed change affects other functional parts of the software.
Semantic relationships between different parts of the code base may hardly be resolved by analyzing compile and link errors. Additionally, the users may include some hints on semantically needed changes by adding source code comments.